CloudFormation スタックに与えたパラメータをCLIで出力したい
CloudFormationのスタックのパラメータをCLIで出力する機会がありました。AWS CLIコマンドとRainコマンドで出力した結果を紹介させていただきます。
管理コンソールからだとここで確認できる値です。これをCLIで出力します。
AWS CLIコマンド
AWS CLIコマンドならなんとなくできそうな気がしますよね?jq
でフィルタすれば見やすく出力できます。
スタック名一覧を出力。
aws cloudformation describe-stacks | jq '.Stacks[].StackName'
一覧から確認できたスタック名blog-test-vpc-stack
のパラメータを出力してみます。
"blog-test-vpc-stack" "a-stack" "b-stack"
特定のスタック名からパラメータを出力。
aws cloudformation describe-stacks --stack-name 'blog-test-vpc-stack' | jq '.Stacks[].Parameters'
JSON形式で出力できました。
[ { "ParameterKey": "PublicSubnetCidr1", "ParameterValue": "10.0.1.0/24" }, { "ParameterKey": "ProjectName", "ParameterValue": "blog" }, { "ParameterKey": "VPCCidr", "ParameterValue": "10.0.0.0/16" }, { "ParameterKey": "EnableNatGateway", "ParameterValue": "false" }, { "ParameterKey": "Environment", "ParameterValue": "dev" }, { "ParameterKey": "PrivateSubnetCidr1", "ParameterValue": "10.0.17.0/24" }, { "ParameterKey": "PrivateSubnetCidr2", "ParameterValue": "10.0.18.0/24" }, { "ParameterKey": "PublicSubnetCidr2", "ParameterValue": "10.0.2.0/24" } ]
Rainコマンド
blog-test-vpc-stack
スタックはもともとRainでデプロイしたスタックではありません。それでもRainならいい感じに出力できるのではないかと興味本位で試します。
Version 1.2.0で試します。
$ rain -v Rain v1.2.0 darwin/amd64
スタック名一覧出力。覚えやすいコマンドでいいですね。
rain ls
スタック名とステータスも確認できます。
CloudFormation stacks in ap-northeast-1: blog-test-vpc-stack: UPDATE_COMPLETE a-stack: CREATE_COMPLETE b-stack: CREATE_COMPLETE
rain ls -a
にすると全リージョンを対象にスタック名一覧を出力してくれます、便利。
特定のスタック名からパラメータを出力。-a
をつけないとOutputsの内容しか出力されませんでした。
rain ls -a blog-test-vpc-stack
YAML形式で出力できました。Parametes
以下の値だけの出力は難しい。
Stack blog-test-vpc-stack: UPDATE_COMPLETE Parameters: PublicSubnetCidr1: 10.0.1.0/24 ProjectName: blog VPCCidr: 10.0.0.0/16 EnableNatGateway: false Environment: dev PrivateSubnetCidr1: 10.0.17.0/24 PrivateSubnetCidr2: 10.0.18.0/24 PublicSubnetCidr2: 10.0.2.0/24 Resources: AttachGateway: CREATE_COMPLETE blog-Attac-10ZSXM0NAA8S7 --- snip --- Outputs: ExportPublicSubnet2: subnet-09ee813780b84b083 # exported as blog-test-vpc-stack-PublicSubnet2
おわりに
出力した結果を再利用するのであればJSON形式で出力されるAWS CLIを使ったほうが便利でした。